3  Manipulación de dataframe

La manipulación de datos en RStudio implica comúnmente la modificación de estructuras de datos, la realización de operaciones específicas y el empleo de funciones para transformar los datos según las necesidades del análisis.

3.1 Funciones

Es un objeto que se encarga de procesar las entradas en resultados. Si queremos crear una función, tendrá la siguiente estructura:

nombre_de_funcion <- function(arg1, arg2, ...){

cuerpo <- ...

cuerpo <- ...

cuerpo <- ...

resultado <- return(resultado)

}

La función return se utiliza para especificar el valor que debe ser devuelto por una función. Sin embargo, en muchos casos, no es necesario usar explícitamente return ya que R automáticamente devuelve el valor de la última expresión evaluada en la función. Esto es conocido como “retorno implícito”.

mi_funcion <- function(arg1, arg2) {
  resultado_intermedio <- arg1 + arg2
  resultado_intermedio <- resultado_intermedio * 2
  resultado_intermedio <- resultado_intermedio ^ 2

  resultado <- return(resultado_intermedio)
}

resultado_final <- mi_funcion(3, 7)
resultado_final
[1] 400

Funciones que se pueden aplicar en un dataframe

#Creamos una dataframe
df <- data.frame(
  ID = c(1,2,3,4,5,6,7,8), 
  Nombre = c("Jorge", "Daniel", "Diana", "Juan", "Camila", "Javier", "Rosa", "Fernando"),
  Genero=c("M", "M", "F", "M", "F", "M", "F", "M"),
  Edad = c(18, 20, 22, 21, 19, 25, 28, 23)
)

Mostrar las primeras filas del dataframe (por defecto, las primeras 6)

head(df)
  ID Nombre Genero Edad
1  1  Jorge      M   18
2  2 Daniel      M   20
3  3  Diana      F   22
4  4   Juan      M   21
5  5 Camila      F   19
6  6 Javier      M   25

Mostrar las últimas filas del dataframe (por defecto, las últimas 6)

tail(df)
  ID   Nombre Genero Edad
3  3    Diana      F   22
4  4     Juan      M   21
5  5   Camila      F   19
6  6   Javier      M   25
7  7     Rosa      F   28
8  8 Fernando      M   23

Elegir cuantas filas ver

head(df,3)
  ID Nombre Genero Edad
1  1  Jorge      M   18
2  2 Daniel      M   20
3  3  Diana      F   22

Información sobre la estructura del dataframe

str(df)
'data.frame':   8 obs. of  4 variables:
 $ ID    : num  1 2 3 4 5 6 7 8
 $ Nombre: chr  "Jorge" "Daniel" "Diana" "Juan" ...
 $ Genero: chr  "M" "M" "F" "M" ...
 $ Edad  : num  18 20 22 21 19 25 28 23

Resumen estadístico del dataframe

summary(df)
       ID          Nombre             Genero               Edad      
 Min.   :1.00   Length:8           Length:8           Min.   :18.00  
 1st Qu.:2.75   Class :character   Class :character   1st Qu.:19.75  
 Median :4.50   Mode  :character   Mode  :character   Median :21.50  
 Mean   :4.50                                         Mean   :22.00  
 3rd Qu.:6.25                                         3rd Qu.:23.50  
 Max.   :8.00                                         Max.   :28.00  

Dimensiones del dataframe

dim(df)
[1] 8 4

Filtrar las filas donde la edad es mayor que 20

df_filtrado <- df[df$Edad > 20, ]
df_filtrado
  ID   Nombre Genero Edad
3  3    Diana      F   22
4  4     Juan      M   21
6  6   Javier      M   25
7  7     Rosa      F   28
8  8 Fernando      M   23

Agregar nueva columna

df$Ingresos <- c(1000, 1200, 1500, 1350, 1400, 1250, 1600, 1450)
df
  ID   Nombre Genero Edad Ingresos
1  1    Jorge      M   18     1000
2  2   Daniel      M   20     1200
3  3    Diana      F   22     1500
4  4     Juan      M   21     1350
5  5   Camila      F   19     1400
6  6   Javier      M   25     1250
7  7     Rosa      F   28     1600
8  8 Fernando      M   23     1450

3.2 Modulos y Librerias

3.2.1 Modulos

Un Modulo en R es una colección de funciones y posiblemente datos relacionados, organizados en un script o archivo R separado para mejorar la estructura y facilitar la reutilización y el mantenimiento del código.

Creamos un script llamado “Ejemplo_modulo”

#funcion <- function(z) {
#return(z * 10)
#}

Cargar el modulo

#source("PEGAR RUTA DEL SCRIPT/Ejemplo_modulo.R")

Utilizamos el modulo

#resultado_modulo <- funcion(20) 

#resultado_modulo

#Respuesta: 200

3.2.2 Librerias

Existen varias librerías en R que son ampliamente utilizadas para la manipulación de dataframes, permitiendo realizar operaciones como filtrado, selección de columnas, agregaciones y transformaciones de datos de manera eficiente.

3.2.2.1 dyplr()

Proporciona un conjunto coherente de funciones que facilitan la manipulación de dataframes.

Cargamos la libreria

library(dplyr)

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union

El operador %>% facilita la lectura del código, especialmente cuando se realizan varias operaciones en secuencia. La librería dplyr es una de las librerías que hace un uso extensivo de este operador en R.

3.2.2.1.0.1 select()

Se utiliza para seleccionar columnas específicas de un dataframe. Puedes especificar las columnas por sus nombres y también realizar operaciones de selección más avanzadas

df_select <- df %>%
              select(ID, Nombre, Edad)
df_select
  ID   Nombre Edad
1  1    Jorge   18
2  2   Daniel   20
3  3    Diana   22
4  4     Juan   21
5  5   Camila   19
6  6   Javier   25
7  7     Rosa   28
8  8 Fernando   23
3.2.2.1.0.2 filter()

Filtra filas del dataframe basándose en condiciones lógicas. Permite seleccionar las filas que cumplen con ciertas condiciones.

df_filter <- df %>%
              filter(Genero == "F", Edad > 25)
df_filter
  ID Nombre Genero Edad Ingresos
1  7   Rosa      F   28     1600
3.2.2.1.0.3 group_by()

Summrise: Se utiliza para generar resúmenes estadísticos o realizar otras operaciones de resumen en un conjunto de datos agrupado.

resultados_media_edad <- df %>%
  group_by(Genero) %>%
  summarise(Media_Edad = mean(Edad))
resultados_media_edad
# A tibble: 2 × 2
  Genero Media_Edad
  <chr>       <dbl>
1 F            23  
2 M            21.4

3.2.2.2 tidyr

Proporciona funciones que ayudan a transformar datos entre formatos anchos (wide) y largos (long), así como a limpiar y organizar datos para que sean más fáciles de trabajar.

Cargamos la libreria

library(tidyr)
3.2.2.2.0.1 gather()

Convierte un dataframe de formato “wide” a “long”.

df_long <- gather(df, key = "Variable", value = "Valor", -ID)
df_long
   ID Variable    Valor
1   1   Nombre    Jorge
2   2   Nombre   Daniel
3   3   Nombre    Diana
4   4   Nombre     Juan
5   5   Nombre   Camila
6   6   Nombre   Javier
7   7   Nombre     Rosa
8   8   Nombre Fernando
9   1   Genero        M
10  2   Genero        M
11  3   Genero        F
12  4   Genero        M
13  5   Genero        F
14  6   Genero        M
15  7   Genero        F
16  8   Genero        M
17  1     Edad       18
18  2     Edad       20
19  3     Edad       22
20  4     Edad       21
21  5     Edad       19
22  6     Edad       25
23  7     Edad       28
24  8     Edad       23
25  1 Ingresos     1000
26  2 Ingresos     1200
27  3 Ingresos     1500
28  4 Ingresos     1350
29  5 Ingresos     1400
30  6 Ingresos     1250
31  7 Ingresos     1600
32  8 Ingresos     1450
3.2.2.2.0.2 spread()

Convierte un dataframe de formato “long” a “wide”

df_wide <- spread(df_long, key = "Variable", value = "Valor")
df_wide
  ID Edad Genero Ingresos   Nombre
1  1   18      M     1000    Jorge
2  2   20      M     1200   Daniel
3  3   22      F     1500    Diana
4  4   21      M     1350     Juan
5  5   19      F     1400   Camila
6  6   25      M     1250   Javier
7  7   28      F     1600     Rosa
8  8   23      M     1450 Fernando

3.2.2.3 data.table

Es una librería y una estructura de datos que ofrece una sintaxis más eficiente y funcionalidades mejoradas para la manipulación de datos, especialmente cuando se trata de conjuntos de datos grandes.

Cargamos la libreria

library(data.table)

Attaching package: 'data.table'
The following objects are masked from 'package:dplyr':

    between, first, last

Creamos el data.table

dt <- data.table(
  ID = c(1, 2, 3, 4, 5, 6, 7, 8),
  Nombre = c("Jorge", "Daniel", "Diana", "Juan", "Camila", "Javier", "Rosa", "Fernando"),
  Genero = c("M", "M", "F", "M", "F", "M", "F", "M"),
  Edad = c(18, 20, 22, 21, 19, 25, 28, 23)
)
3.2.2.3.0.1 Filtrar

Filtrar por genero

dt[Genero == "M", .(ID, Nombre)]
   ID   Nombre
1:  1    Jorge
2:  2   Daniel
3:  4     Juan
4:  6   Javier
5:  8 Fernando
3.2.2.3.0.2 Sintaxis de agrupación

Facilita la realización de operaciones agregadas y resúmenes por grupos de datos.

dt[, .(Media_Edad = mean(Edad)), by = Genero]
   Genero Media_Edad
1:      M       21.4
2:      F       23.0
3.2.2.3.0.3 Indexación y Ordenación Eficientes

Puedes establecer claves en columnas para mejorar la eficiencia de las operaciones de búsqueda y ordenación.

setkey(dt, Edad)
dt
   ID   Nombre Genero Edad
1:  1    Jorge      M   18
2:  5   Camila      F   19
3:  2   Daniel      M   20
4:  4     Juan      M   21
5:  3    Diana      F   22
6:  8 Fernando      M   23
7:  6   Javier      M   25
8:  7     Rosa      F   28
3.2.2.3.0.4 Operaciones de Unión Eficientes

Puedes unir dos data.tables de manera eficiente usando la sintaxis de unión en R

dt2 <- data.table(ID = c(1, 2, 3, 4, 5, 6, 7, 8), Ocupacion = c("Ingeniero", "Profesor", "Doctor", "Abogado", "Policia", "Bombero", "Veterinario", "Arquitecto"))
dt_unido <- dt[dt2, on = "ID"]
dt_unido
   ID   Nombre Genero Edad   Ocupacion
1:  1    Jorge      M   18   Ingeniero
2:  2   Daniel      M   20    Profesor
3:  3    Diana      F   22      Doctor
4:  4     Juan      M   21     Abogado
5:  5   Camila      F   19     Policia
6:  6   Javier      M   25     Bombero
7:  7     Rosa      F   28 Veterinario
8:  8 Fernando      M   23  Arquitecto

3.3 Manipulación e Introducción al análisis de datos

3.3.1 Dataframe

Es una estructura de datos bidimensional que sirve para almacenar información de manera tabular, donde las filas representan observaciones y las columnas, variables.

3.3.2 Manipulación de datos

La manipulación de datos se refiere a la preparación y modificación de conjuntos de datos con el objetivo de facilitar su análisis.

3.3.2.1 Limpieza de Datos

Identificar y resolver inconvenientes como datos ausentes, valores atípicos y duplicados. La calidad de los resultados analíticos está intrínsecamente ligada a la integridad de los datos.

3.3.2.2 Transformación de Datos

Adaptar la estructura de los datos de acuerdo con los requisitos del análisis. Esto puede abarcar desde cambios de formato hasta la normalización de variables o la creación de nuevas características.

3.3.2.3 Filtrado y Subconjuntos

Elegir un conjunto de datos específico relevante para el análisis. Esto podría incluir la exclusión de observaciones no deseadas o la extracción de variables particulares

3.3.2.4 Agregación y Resumen:

Condensar conjuntos extensos de datos mediante procesos como la agregación, donde se calculan estadísticas resumen, y la creación de resúmenes estadísticos.

3.4 Flujo del proceso de análisis de datos

Inicia con la importación de datos, seguido de una exploración inicial para comprender la estructura y contenido. Luego, se lleva a cabo la limpieza y preprocesamiento para abordar posibles problemas. A continuación, se realiza la transformación y manipulación de datos, seguida por un análisis descriptivo y exploratorio para comprender patrones y tendencias. La aplicación de modelos estadísticos, validación y ajuste se lleva a cabo para entender y prever relaciones. La interpretación de resultados conduce a la presentación y comunicación de hallazgos a través de informes, visualizaciones o presentaciones, adaptadas a la audiencia. Este proceso, aunque secuencial, puede ser iterativo para ajustarse según los hallazgos y necesidades específicas del análisis.

3.5 Importación de datos

3.5.1 Archivo CSV

datos_csv <- read.csv("netflix_revenue_updated.csv",
                 header=TRUE,sep=",")

Mostrar los 5 primeros

head(datos_csv,5)
        Date Global.Revenue UCAN.Streaming.Revenue EMEA.Streaming.Revenue
1 31-03-2019     4520992000             2256851000             1233379000
2 30-06-2019     4923116000             2501199000             1319087000
3 30-09-2019     5244905000             2621250000             1428040000
4 31-12-2019     5467434000             2671908000             1562561000
5 31-03-2020     5767691000             2702776000             1723474000
  LATM.Streaming.Revenue APAC.Streaming.Revenue UCAN.Members EMEA..Members
1              630472000              319602000     66633000      42542000
2              677136000              349494000     66501000      44229000
3              741434000              382304000     67114000      47355000
4              746392000              418121000     67662000      51778000
5              793453000              483660000     69969000      58734000
  LATM.Members APAC.Members UCAN.ARPU EMEA.ARPU LATM..ARPU APAC..ARPU
1     27547000     12141000     11.45     10.23       7.84       9.37
2     27890000     12942000     12.52     10.13       8.14       9.29
3     29380000     14485000     13.08     10.40       8.63       9.29
4     31417000     16233000     13.22     10.51       8.18       9.07
5     34318000     19835000     13.09     10.40       8.05       8.94
  Netflix.Streaming.Memberships
1                     148863000
2                     151562000
3                     158334000
4                     167090000
5                     182856000

Mostrar solo las columnas “Date” y “UCAN.Streaming.Revenue”

datos_seleccionados <- datos_csv %>%
  select(Date, UCAN.Streaming.Revenue)
datos_seleccionados
         Date UCAN.Streaming.Revenue
1  31-03-2019             2256851000
2  30-06-2019             2501199000
3  30-09-2019             2621250000
4  31-12-2019             2671908000
5  31-03-2020             2702776000
6  30-06-2020             2839670000
7  30-09-2020             2933445000
8  31-12-2020             2979505000
9  31-03-2021             3170972000
10 30-06-2021             3234643000
11 30-09-2021             3257697000
12 31-12-2021             3308788000
13 31-03-2022             3350424000
14 30-06-2022             3537863000
15 30-09-2022             3601565000
16 31-12-2022             3594791000
17 31-03-2023             3608645000

Filtrar

datos_filtrados <- datos_csv %>%
              filter(Global.Revenue > 6000000000)
datos_filtrados
         Date Global.Revenue UCAN.Streaming.Revenue EMEA.Streaming.Revenue
1  30-06-2020     6148286000             2839670000             1892537000
2  30-09-2020     6435637000             2933445000             2019083000
3  31-12-2020     6644442000             2979505000             2137158000
4  31-03-2021     7163282000             3170972000             2343674000
5  30-06-2021     7341777000             3234643000             2400480000
6  30-09-2021     7483467000             3257697000             2432239000
7  31-12-2021     7709318000             3308788000             2523426000
8  31-03-2022     7867767000             3350424000             2561831000
9  30-06-2022     7970141000             3537863000             2457235000
10 30-09-2022     7925589000             3601565000             2375814000
11 31-12-2022     7852053000             3594791000             2350135000
12 31-03-2023     8161503000             3608645000             2517641000
   LATM.Streaming.Revenue APAC.Streaming.Revenue UCAN.Members EMEA..Members
1               785368000              569140000     72904000      61483000
2               789384000              634891000     73081000      62242000
3               788522000              684609000     73936000      66698000
4               836647000              762414000     74384000      68508000
5               860882000              799480000     73951000      68696000
6               915297000              834002000     74024000      70500000
7               964150000              870705000     75215000      74036000
8               998948000              916754000     74579000      73733000
9              1030234000              907719000     73283000      72966000
10             1023945000              889037000     73387000      73534000
11             1016846000              856711000     74296000      76729000
12             1070192000              933523000     74398000      77373000
   LATM.Members APAC.Members UCAN.ARPU EMEA.ARPU LATM..ARPU APAC..ARPU
1      36068000     22492000     13.25     10.50       7.44       8.96
2      36324000     23504000     13.40     10.88       7.27       9.20
3      37537000     25492000     13.51     11.05       7.12       9.32
4      37894000     26853000     14.25     11.56       7.39       9.71
5      38658000     27875000     14.54     11.66       7.50       9.74
6      38988000     30051000     14.68     11.65       7.86       9.60
7      39961000     32632000     14.78     11.64       8.14       9.26
8      39610000     33719000     14.91     11.56       8.37       9.21
9      39624000     34799000     15.95     11.17       8.67       8.83
10     39936000     36228000     16.37     10.81       8.58       8.34
11     41699000     38023000     16.23     10.43       8.30       7.69
12     41249000     39478000     16.18     10.89       8.60       8.03
   Netflix.Streaming.Memberships
1                      192947000
2                      195151000
3                      203663000
4                      207639000
5                      209180000
6                      213563000
7                      221844000
8                      221641000
9                      220672000
10                     223085000
11                     230747000
12                     232498000

Para eliminar la primera columna

datos_csv = datos_csv[ , -1]
datos_csv
   Global.Revenue UCAN.Streaming.Revenue EMEA.Streaming.Revenue
1      4520992000             2256851000             1233379000
2      4923116000             2501199000             1319087000
3      5244905000             2621250000             1428040000
4      5467434000             2671908000             1562561000
5      5767691000             2702776000             1723474000
6      6148286000             2839670000             1892537000
7      6435637000             2933445000             2019083000
8      6644442000             2979505000             2137158000
9      7163282000             3170972000             2343674000
10     7341777000             3234643000             2400480000
11     7483467000             3257697000             2432239000
12     7709318000             3308788000             2523426000
13     7867767000             3350424000             2561831000
14     7970141000             3537863000             2457235000
15     7925589000             3601565000             2375814000
16     7852053000             3594791000             2350135000
17     8161503000             3608645000             2517641000
   LATM.Streaming.Revenue APAC.Streaming.Revenue UCAN.Members EMEA..Members
1               630472000              319602000     66633000      42542000
2               677136000              349494000     66501000      44229000
3               741434000              382304000     67114000      47355000
4               746392000              418121000     67662000      51778000
5               793453000              483660000     69969000      58734000
6               785368000              569140000     72904000      61483000
7               789384000              634891000     73081000      62242000
8               788522000              684609000     73936000      66698000
9               836647000              762414000     74384000      68508000
10              860882000              799480000     73951000      68696000
11              915297000              834002000     74024000      70500000
12              964150000              870705000     75215000      74036000
13              998948000              916754000     74579000      73733000
14             1030234000              907719000     73283000      72966000
15             1023945000              889037000     73387000      73534000
16             1016846000              856711000     74296000      76729000
17             1070192000              933523000     74398000      77373000
   LATM.Members APAC.Members UCAN.ARPU EMEA.ARPU LATM..ARPU APAC..ARPU
1      27547000     12141000     11.45     10.23       7.84       9.37
2      27890000     12942000     12.52     10.13       8.14       9.29
3      29380000     14485000     13.08     10.40       8.63       9.29
4      31417000     16233000     13.22     10.51       8.18       9.07
5      34318000     19835000     13.09     10.40       8.05       8.94
6      36068000     22492000     13.25     10.50       7.44       8.96
7      36324000     23504000     13.40     10.88       7.27       9.20
8      37537000     25492000     13.51     11.05       7.12       9.32
9      37894000     26853000     14.25     11.56       7.39       9.71
10     38658000     27875000     14.54     11.66       7.50       9.74
11     38988000     30051000     14.68     11.65       7.86       9.60
12     39961000     32632000     14.78     11.64       8.14       9.26
13     39610000     33719000     14.91     11.56       8.37       9.21
14     39624000     34799000     15.95     11.17       8.67       8.83
15     39936000     36228000     16.37     10.81       8.58       8.34
16     41699000     38023000     16.23     10.43       8.30       7.69
17     41249000     39478000     16.18     10.89       8.60       8.03
   Netflix.Streaming.Memberships
1                      148863000
2                      151562000
3                      158334000
4                      167090000
5                      182856000
6                      192947000
7                      195151000
8                      203663000
9                      207639000
10                     209180000
11                     213563000
12                     221844000
13                     221641000
14                     220672000
15                     223085000
16                     230747000
17                     232498000

Hallar la media de “Global.Revenue”

media <- mean(datos_csv$Global.Revenue)
media
[1] 6742788235

Resumen de los datos

summary(datos_csv)
 Global.Revenue      UCAN.Streaming.Revenue EMEA.Streaming.Revenue
 Min.   :4.521e+09   Min.   :2.257e+09      Min.   :1.233e+09     
 1st Qu.:5.768e+09   1st Qu.:2.703e+09      1st Qu.:1.723e+09     
 Median :7.163e+09   Median :3.171e+09      Median :2.344e+09     
 Mean   :6.743e+09   Mean   :3.069e+09      Mean   :2.075e+09     
 3rd Qu.:7.852e+09   3rd Qu.:3.350e+09      3rd Qu.:2.432e+09     
 Max.   :8.162e+09   Max.   :3.609e+09      Max.   :2.562e+09     
 LATM.Streaming.Revenue APAC.Streaming.Revenue  UCAN.Members     
 Min.   :6.305e+08      Min.   :319602000      Min.   :66501000  
 1st Qu.:7.854e+08      1st Qu.:483660000      1st Qu.:69969000  
 Median :8.366e+08      Median :762414000      Median :73387000  
 Mean   :8.629e+08      Mean   :683068588      Mean   :72077471  
 3rd Qu.:9.989e+08      3rd Qu.:870705000      3rd Qu.:74296000  
 Max.   :1.070e+09      Max.   :933523000      Max.   :75215000  
 EMEA..Members       LATM.Members       APAC.Members        UCAN.ARPU    
 Min.   :42542000   Min.   :27547000   Min.   :12141000   Min.   :11.45  
 1st Qu.:58734000   1st Qu.:34318000   1st Qu.:19835000   1st Qu.:13.22  
 Median :68508000   Median :37894000   Median :26853000   Median :14.25  
 Mean   :64184471   Mean   :36358824   Mean   :26281294   Mean   :14.20  
 3rd Qu.:73534000   3rd Qu.:39624000   3rd Qu.:33719000   3rd Qu.:14.91  
 Max.   :77373000   Max.   :41699000   Max.   :39478000   Max.   :16.37  
   EMEA.ARPU       LATM..ARPU      APAC..ARPU   Netflix.Streaming.Memberships
 Min.   :10.13   Min.   :7.120   Min.   :7.69   Min.   :148863000            
 1st Qu.:10.43   1st Qu.:7.500   1st Qu.:8.94   1st Qu.:182856000            
 Median :10.88   Median :8.140   Median :9.21   Median :207639000            
 Mean   :10.91   Mean   :8.005   Mean   :9.05   Mean   :198902059            
 3rd Qu.:11.56   3rd Qu.:8.370   3rd Qu.:9.32   3rd Qu.:221641000            
 Max.   :11.66   Max.   :8.670   Max.   :9.74   Max.   :232498000            

3.5.2 Archivo Excel (xlsx)

Cargamos la libreria

library(readxl)
datos_excel <- read_excel("FIFA WC 2022 Players Stats .xlsx")
datos_excel
# A tibble: 814 × 18
   Nationality `FIFA Ranking` `National Team Kit Sponsor` Position
   <chr>                <dbl> <chr>                       <chr>   
 1 Argentina                2 Adidas                      GK      
 2 Argentina                2 Adidas                      GK      
 3 Argentina                2 Adidas                      GK      
 4 Argentina                2 Adidas                      DF      
 5 Argentina                2 Adidas                      DF      
 6 Argentina                2 Adidas                      DF      
 7 Argentina                2 Adidas                      DF      
 8 Argentina                2 Adidas                      DF      
 9 Argentina                2 Adidas                      DF      
10 Argentina                2 Adidas                      DF      
# ℹ 804 more rows
# ℹ 14 more variables: `National Team Jersey Number` <dbl>, `Player DOB` <chr>,
#   Club <chr>, `Player Name` <chr>, Appearances <chr>, `Goals Scored` <chr>,
#   `Assists Provided` <chr>, `Dribbles per 90` <chr>,
#   `Interceptions per 90` <chr>, `Tackles per 90` <chr>,
#   `Total Duels Won per 90` <chr>, `Save Percentage` <chr>,
#   `Clean Sheets` <chr>, `Brand Sponsor/Brand Used` <chr>

Mostrar los 5 primeros

head(datos_excel,5)
# A tibble: 5 × 18
  Nationality `FIFA Ranking` `National Team Kit Sponsor` Position
  <chr>                <dbl> <chr>                       <chr>   
1 Argentina                2 Adidas                      GK      
2 Argentina                2 Adidas                      GK      
3 Argentina                2 Adidas                      GK      
4 Argentina                2 Adidas                      DF      
5 Argentina                2 Adidas                      DF      
# ℹ 14 more variables: `National Team Jersey Number` <dbl>, `Player DOB` <chr>,
#   Club <chr>, `Player Name` <chr>, Appearances <chr>, `Goals Scored` <chr>,
#   `Assists Provided` <chr>, `Dribbles per 90` <chr>,
#   `Interceptions per 90` <chr>, `Tackles per 90` <chr>,
#   `Total Duels Won per 90` <chr>, `Save Percentage` <chr>,
#   `Clean Sheets` <chr>, `Brand Sponsor/Brand Used` <chr>

Resumen de los datos

summary(datos_excel)
 Nationality         FIFA Ranking   National Team Kit Sponsor
 Length:814         Min.   : 1.00   Length:814               
 Class :character   1st Qu.: 9.00   Class :character         
 Mode  :character   Median :18.00   Mode  :character         
                    Mean   :21.71                            
                    3rd Qu.:29.00                            
                    Max.   :60.00                            
                                                             
   Position         National Team Jersey Number  Player DOB       
 Length:814         Min.   : 1.00               Length:814        
 Class :character   1st Qu.: 7.00               Class :character  
 Mode  :character   Median :14.00               Mode  :character  
                    Mean   :13.51                                 
                    3rd Qu.:20.00                                 
                    Max.   :26.00                                 
                    NA's   :1                                     
     Club           Player Name        Appearances        Goals Scored      
 Length:814         Length:814         Length:814         Length:814        
 Class :character   Class :character   Class :character   Class :character  
 Mode  :character   Mode  :character   Mode  :character   Mode  :character  
                                                                            
                                                                            
                                                                            
                                                                            
 Assists Provided   Dribbles per 90    Interceptions per 90 Tackles per 90    
 Length:814         Length:814         Length:814           Length:814        
 Class :character   Class :character   Class :character     Class :character  
 Mode  :character   Mode  :character   Mode  :character     Mode  :character  
                                                                              
                                                                              
                                                                              
                                                                              
 Total Duels Won per 90 Save Percentage    Clean Sheets      
 Length:814             Length:814         Length:814        
 Class :character       Class :character   Class :character  
 Mode  :character       Mode  :character   Mode  :character  
                                                             
                                                             
                                                             
                                                             
 Brand Sponsor/Brand Used
 Length:814              
 Class :character        
 Mode  :character        
                         
                         
                         
                         

3.5.3 De la WEB

Cargamos la libreria

library(readr)

Cargamos el archivo .csv de la WEB

url <- "https://www.datosabiertos.gob.pe/sites/default/files/Trim%20May-Jun-Jul23_Muestra.csv"

datosweb_csv <- read_csv(url)
Rows: 200 Columns: 96
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr  (2): MES, SELVIV
dbl (89): ANIO, CONGLOMERADO, MUESTRA, HOGAR, C201, REGION, ESTRATO, LLAVE_P...
lgl  (5): C206, C345_1, C347_T, I345_1, D347_T

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
datosweb_csv
# A tibble: 200 × 96
    ANIO MES   CONGLOMERADO MUESTRA SELVIV HOGAR  C201 REGION ESTRATO
   <dbl> <chr>        <dbl>   <dbl> <chr>  <dbl> <dbl>  <dbl>   <dbl>
 1  2023 05         1725903       1 0031       1     1      1       1
 2  2023 05         1725903       1 0031       1     2      1       1
 3  2023 05         1725903       1 0031       1     3      1       1
 4  2023 05         1725903       1 0031       1     4      1       1
 5  2023 05         1725903       1 0031       1     5      1       1
 6  2023 05         1725903       1 0032       1     1      1       1
 7  2023 05         1725903       1 0032       1     2      1       1
 8  2023 05         1725903       1 0032       1     3      1       1
 9  2023 05         1725903       1 0032       1     4      1       1
10  2023 05         1725903       1 0032       1     5      1       1
# ℹ 190 more rows
# ℹ 87 more variables: LLAVE_PANEL <dbl>, C203 <dbl>, C204 <dbl>, C205 <dbl>,
#   C206 <lgl>, C207 <dbl>, C208 <dbl>, C300n <dbl>, NROINF <dbl>,
#   C301_DIA <dbl>, C301_MES <dbl>, C301_ANIO <dbl>, C303 <dbl>, C304 <dbl>,
#   C305 <dbl>, C306_1 <dbl>, C306_2 <dbl>, C306_3 <dbl>, C306_4 <dbl>,
#   C306_5 <dbl>, C306_6 <dbl>, C306_7 <dbl>, C306_8 <dbl>, C306_9 <dbl>,
#   C306_10 <dbl>, C306_10A <dbl>, C306_11 <dbl>, C308_COD <dbl>, …
#Utiliza spec() para obtener la especificación completa
column_spec <- spec(datosweb_csv)

Mostrar los 5 primeros

head(datosweb_csv,5)
# A tibble: 5 × 96
   ANIO MES   CONGLOMERADO MUESTRA SELVIV HOGAR  C201 REGION ESTRATO LLAVE_PANEL
  <dbl> <chr>        <dbl>   <dbl> <chr>  <dbl> <dbl>  <dbl>   <dbl>       <dbl>
1  2023 05         1725903       1 0031       1     1      1       1     2.02e19
2  2023 05         1725903       1 0031       1     2      1       1     2.02e19
3  2023 05         1725903       1 0031       1     3      1       1     2.02e19
4  2023 05         1725903       1 0031       1     4      1       1     2.02e19
5  2023 05         1725903       1 0031       1     5      1       1     2.02e19
# ℹ 86 more variables: C203 <dbl>, C204 <dbl>, C205 <dbl>, C206 <lgl>,
#   C207 <dbl>, C208 <dbl>, C300n <dbl>, NROINF <dbl>, C301_DIA <dbl>,
#   C301_MES <dbl>, C301_ANIO <dbl>, C303 <dbl>, C304 <dbl>, C305 <dbl>,
#   C306_1 <dbl>, C306_2 <dbl>, C306_3 <dbl>, C306_4 <dbl>, C306_5 <dbl>,
#   C306_6 <dbl>, C306_7 <dbl>, C306_8 <dbl>, C306_9 <dbl>, C306_10 <dbl>,
#   C306_10A <dbl>, C306_11 <dbl>, C308_COD <dbl>, C309_COD <dbl>, C310 <dbl>,
#   C311 <dbl>, C317 <dbl>, C317A <dbl>, C318_1 <dbl>, C318_2 <dbl>, …

Resumen de los datos

summary(datosweb_csv)
      ANIO          MES             CONGLOMERADO        MUESTRA 
 Min.   :2023   Length:200         Min.   :  17272   Min.   :1  
 1st Qu.:2023   Class :character   1st Qu.:  17390   1st Qu.:1  
 Median :2023   Mode  :character   Median :  17437   Median :1  
 Mean   :2023                      Mean   : 188270   Mean   :1  
 3rd Qu.:2023                      3rd Qu.:  17527   3rd Qu.:1  
 Max.   :2023                      Max.   :1725903   Max.   :1  
                                                                
    SELVIV              HOGAR            C201           REGION     ESTRATO 
 Length:200         Min.   :1.000   Min.   : 1.00   Min.   :1   Min.   :1  
 Class :character   1st Qu.:1.000   1st Qu.: 1.00   1st Qu.:1   1st Qu.:1  
 Mode  :character   Median :1.000   Median : 2.00   Median :1   Median :1  
                    Mean   :1.015   Mean   : 2.84   Mean   :1   Mean   :1  
                    3rd Qu.:1.000   3rd Qu.: 4.00   3rd Qu.:1   3rd Qu.:1  
                    Max.   :2.000   Max.   :11.00   Max.   :1   Max.   :1  
                                                                           
  LLAVE_PANEL             C203             C204        C205        C206        
 Min.   :2.022e+17   Min.   : 1.000   Min.   :1   Min.   :1.00   Mode:logical  
 1st Qu.:2.022e+17   1st Qu.: 1.000   1st Qu.:1   1st Qu.:2.00   NA's:200      
 Median :2.023e+17   Median : 3.000   Median :1   Median :2.00                 
 Mean   :2.222e+18   Mean   : 2.725   Mean   :1   Mean   :1.98                 
 3rd Qu.:2.023e+17   3rd Qu.: 3.000   3rd Qu.:1   3rd Qu.:2.00                 
 Max.   :2.022e+19   Max.   :11.000   Max.   :1   Max.   :2.00                 
                                                                               
      C207           C208           C300n            NROINF     
 Min.   :1.00   Min.   : 1.00   Min.   : 1.000   Min.   : 1.00  
 1st Qu.:1.00   1st Qu.:16.00   1st Qu.: 1.000   1st Qu.: 1.00  
 Median :2.00   Median :30.00   Median : 2.000   Median : 2.00  
 Mean   :1.54   Mean   :33.78   Mean   : 2.342   Mean   :19.09  
 3rd Qu.:2.00   3rd Qu.:49.00   3rd Qu.: 3.000   3rd Qu.: 4.00  
 Max.   :2.00   Max.   :92.00   Max.   :10.000   Max.   :99.00  
                NA's   :1       NA's   :45       NA's   :45     
    C301_DIA        C301_MES        C301_ANIO         C303      
 Min.   : 1.00   Min.   : 1.000   Min.   :1930   Min.   :1.000  
 1st Qu.: 7.75   1st Qu.: 4.000   1st Qu.:1969   1st Qu.:1.000  
 Median :16.50   Median : 7.000   Median :1981   Median :2.000  
 Mean   :15.92   Mean   : 6.727   Mean   :1981   Mean   :1.508  
 3rd Qu.:23.25   3rd Qu.:10.000   3rd Qu.:2000   3rd Qu.:2.000  
 Max.   :31.00   Max.   :12.000   Max.   :2009   Max.   :2.000  
 NA's   :72      NA's   :72       NA's   :72     NA's   :72     
      C304            C305         C306_1        C306_2          C306_3   
 Min.   :1.000   Min.   :2     Min.   :2     Min.   :1.000   Min.   :2    
 1st Qu.:2.000   1st Qu.:2     1st Qu.:2     1st Qu.:2.000   1st Qu.:2    
 Median :2.000   Median :2     Median :2     Median :2.000   Median :2    
 Mean   :1.969   Mean   :2     Mean   :2     Mean   :1.952   Mean   :2    
 3rd Qu.:2.000   3rd Qu.:2     3rd Qu.:2     3rd Qu.:2.000   3rd Qu.:2    
 Max.   :2.000   Max.   :2     Max.   :2     Max.   :2.000   Max.   :2    
 NA's   :135     NA's   :137   NA's   :137   NA's   :137     NA's   :137  
     C306_4        C306_5        C306_6        C306_7        C306_8   
 Min.   :2     Min.   :2     Min.   :2     Min.   :2     Min.   :2    
 1st Qu.:2     1st Qu.:2     1st Qu.:2     1st Qu.:2     1st Qu.:2    
 Median :2     Median :2     Median :2     Median :2     Median :2    
 Mean   :2     Mean   :2     Mean   :2     Mean   :2     Mean   :2    
 3rd Qu.:2     3rd Qu.:2     3rd Qu.:2     3rd Qu.:2     3rd Qu.:2    
 Max.   :2     Max.   :2     Max.   :2     Max.   :2     Max.   :2    
 NA's   :137   NA's   :137   NA's   :137   NA's   :137   NA's   :137  
     C306_9       C306_10         C306_10A      C306_11       C308_COD   
 Min.   :2     Min.   :1.000   Min.   :2     Min.   :2     Min.   : 312  
 1st Qu.:2     1st Qu.:2.000   1st Qu.:2     1st Qu.:2     1st Qu.:5212  
 Median :2     Median :2.000   Median :2     Median :2     Median :7342  
 Mean   :2     Mean   :1.968   Mean   :2     Mean   :2     Mean   :6694  
 3rd Qu.:2     3rd Qu.:2.000   3rd Qu.:2     3rd Qu.:2     3rd Qu.:8914  
 Max.   :2     Max.   :2.000   Max.   :2     Max.   :2     Max.   :9629  
 NA's   :137   NA's   :137     NA's   :137   NA's   :137   NA's   :130   
    C309_COD         C310            C311            C317      
 Min.   :1073   Min.   :1.000   Min.   :1.000   Min.   :1.000  
 1st Qu.:4324   1st Qu.:2.000   1st Qu.:4.000   1st Qu.:1.000  
 Median :4922   Median :3.000   Median :5.000   Median :1.000  
 Mean   :5578   Mean   :3.029   Mean   :4.324   Mean   :1.857  
 3rd Qu.:8093   3rd Qu.:3.000   3rd Qu.:5.000   3rd Qu.:2.000  
 Max.   :9700   Max.   :9.000   Max.   :5.000   Max.   :5.000  
 NA's   :130    NA's   :130     NA's   :166     NA's   :130    
     C317A            C318_1           C318_2           C318_3      
 Min.   :   1.0   Min.   : 0.000   Min.   : 0.000   Min.   : 0.000  
 1st Qu.:   1.0   1st Qu.: 0.000   1st Qu.: 5.250   1st Qu.: 6.000  
 Median :   3.0   Median : 0.000   Median : 8.000   Median : 8.000  
 Mean   : 466.6   Mean   : 2.186   Mean   : 6.986   Mean   : 7.257  
 3rd Qu.:  50.0   3rd Qu.: 3.750   3rd Qu.: 9.000   3rd Qu.: 9.000  
 Max.   :9888.0   Max.   :15.000   Max.   :15.000   Max.   :15.000  
 NA's   :131      NA's   :130      NA's   :130      NA's   :130     
     C318_4         C318_5           C318_6          C318_7      
 Min.   : 0.0   Min.   : 0.000   Min.   : 0.00   Min.   : 0.000  
 1st Qu.: 5.0   1st Qu.: 4.250   1st Qu.: 4.25   1st Qu.: 0.000  
 Median : 8.0   Median : 8.000   Median : 8.00   Median : 6.000  
 Mean   : 6.7   Mean   : 6.514   Mean   : 6.50   Mean   : 5.071  
 3rd Qu.: 9.0   3rd Qu.: 8.750   3rd Qu.: 8.75   3rd Qu.: 8.000  
 Max.   :15.0   Max.   :15.000   Max.   :15.00   Max.   :15.000  
 NA's   :130    NA's   :130      NA's   :130     NA's   :130     
     whoraT            C330            C331           P209H      
 Min.   :  4.00   Min.   :1.000   Min.   : 8.00   Min.   :1.000  
 1st Qu.: 37.00   1st Qu.:1.000   1st Qu.:44.50   1st Qu.:2.000  
 Median : 48.00   Median :1.000   Median :48.00   Median :2.000  
 Mean   : 46.61   Mean   :1.171   Mean   :46.83   Mean   :1.857  
 3rd Qu.: 58.75   3rd Qu.:1.000   3rd Qu.:56.25   3rd Qu.:2.000  
 Max.   :105.00   Max.   :2.000   Max.   :70.00   Max.   :2.000  
 NA's   :130      NA's   :130     NA's   :188     NA's   :130    
      C335            C338           C339_1         C341_T           C342     
 Min.   :1.000   Min.   :2.000   Min.   :  12   Min.   : 10.0   Min.   : 150  
 1st Qu.:2.000   1st Qu.:2.750   1st Qu.: 335   1st Qu.: 30.0   1st Qu.:1000  
 Median :2.000   Median :4.000   Median :1300   Median :108.0   Median :1000  
 Mean   :1.862   Mean   :3.475   Mean   :1532   Mean   :174.6   Mean   :1216  
 3rd Qu.:2.000   3rd Qu.:4.000   3rd Qu.:2075   3rd Qu.:173.0   3rd Qu.:1500  
 Max.   :2.000   Max.   :5.000   Max.   :6500   Max.   :800.0   Max.   :3000  
 NA's   :135     NA's   :160     NA's   :161    NA's   :191     NA's   :175   
      C344      C345_1             C348      C347_T             C350    
 Min.   : 20   Mode:logical   Min.   :250   Mode:logical   Min.   :10   
 1st Qu.: 55   NA's:200       1st Qu.:325   NA's:200       1st Qu.:10   
 Median : 80                  Median :400                  Median :10   
 Mean   : 90                  Mean   :450                  Mean   :10   
 3rd Qu.:110                  3rd Qu.:550                  3rd Qu.:10   
 Max.   :200                  Max.   :700                  Max.   :10   
 NA's   :193                  NA's   :197                  NA's   :199  
      C352            C353          C354            C355           C356    
 Min.   :1.000   Min.   :4     Min.   :1.000   Min.   :1.00   Min.   :5    
 1st Qu.:2.000   1st Qu.:4     1st Qu.:1.000   1st Qu.:1.75   1st Qu.:5    
 Median :2.000   Median :5     Median :2.000   Median :2.00   Median :5    
 Mean   :1.948   Mean   :5     Mean   :1.636   Mean   :1.75   Mean   :6    
 3rd Qu.:2.000   3rd Qu.:5     3rd Qu.:2.000   3rd Qu.:2.00   3rd Qu.:6    
 Max.   :2.000   Max.   :8     Max.   :2.000   Max.   :2.00   Max.   :9    
 NA's   :142     NA's   :145   NA's   :145     NA's   :180    NA's   :195  
     C357_I           C358            C359          SEGURO1     
 Min.   :2.000   Min.   :2.000   Min.   :1.000   Min.   :1.000  
 1st Qu.:2.000   1st Qu.:2.000   1st Qu.:1.000   1st Qu.:1.000  
 Median :2.000   Median :2.000   Median :1.000   Median :5.000  
 Mean   :3.333   Mean   :2.667   Mean   :1.086   Mean   :3.922  
 3rd Qu.:4.000   3rd Qu.:3.000   3rd Qu.:1.000   3rd Qu.:5.000  
 Max.   :6.000   Max.   :4.000   Max.   :2.000   Max.   :6.000  
 NA's   :197     NA's   :197     NA's   :72      NA's   :72     
      C366            C366_1          C366_2         C375_1          C375_2  
 Min.   : 1.000   Min.   :1.000   Min.   :1.00   Min.   :1.000   Min.   :2   
 1st Qu.: 5.000   1st Qu.:2.000   1st Qu.:2.00   1st Qu.:2.000   1st Qu.:2   
 Median : 6.000   Median :4.000   Median :5.00   Median :2.000   Median :2   
 Mean   : 6.531   Mean   :3.567   Mean   :4.00   Mean   :1.984   Mean   :2   
 3rd Qu.: 8.000   3rd Qu.:5.000   3rd Qu.:5.75   3rd Qu.:2.000   3rd Qu.:2   
 Max.   :11.000   Max.   :6.000   Max.   :6.00   Max.   :2.000   Max.   :2   
 NA's   :72       NA's   :80      NA's   :194    NA's   :72      NA's   :72  
     C375_3          C375_4          C375_5          C375_6     
 Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
 1st Qu.:2.000   1st Qu.:2.000   1st Qu.:2.000   1st Qu.:2.000  
 Median :2.000   Median :2.000   Median :2.000   Median :2.000  
 Mean   :1.992   Mean   :1.984   Mean   :1.992   Mean   :1.992  
 3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000   3rd Qu.:2.000  
 Max.   :2.000   Max.   :2.000   Max.   :2.000   Max.   :2.000  
 NA's   :72      NA's   :72      NA's   :72      NA's   :72     
      C376             C377          OCUP300          I339_1    
 Min.   : 1.000   Min.   :1.000   Min.   :1.000   Min.   :  52  
 1st Qu.:10.000   1st Qu.:7.000   1st Qu.:1.000   1st Qu.: 900  
 Median :10.000   Median :7.000   Median :1.000   Median :1350  
 Mean   : 9.094   Mean   :6.406   Mean   :2.305   Mean   :1719  
 3rd Qu.:10.000   3rd Qu.:7.000   3rd Qu.:4.000   3rd Qu.:2075  
 Max.   :10.000   Max.   :9.000   Max.   :4.000   Max.   :6500  
 NA's   :72       NA's   :72      NA's   :72      NA's   :161   
     D341_T           I342           D344         I345_1             I348    
 Min.   :130.0   Min.   : 200   Min.   : 10.00   Mode:logical   Min.   :250  
 1st Qu.:150.0   1st Qu.:1000   1st Qu.: 50.00   NA's:200       1st Qu.:325  
 Median :300.0   Median :1200   Median : 87.00                  Median :400  
 Mean   :323.4   Mean   :1413   Mean   : 79.29                  Mean   :450  
 3rd Qu.:460.0   3rd Qu.:1500   3rd Qu.:104.00                  3rd Qu.:550  
 Max.   :800.0   Max.   :3996   Max.   :150.00                  Max.   :700  
 NA's   :191     NA's   :175    NA's   :193                     NA's   :197  
  D347_T             D350         INGTOT        INGTOTP        RESIDENT   
 Mode:logical   Min.   :10    Min.   :  52   Min.   :  52   Min.   :0.00  
 NA's:200       1st Qu.:10    1st Qu.:1000   1st Qu.:1000   1st Qu.:1.00  
                Median :10    Median :1308   Median :1308   Median :1.00  
                Mean   :10    Mean   :1649   Mean   :1628   Mean   :0.98  
                3rd Qu.:10    3rd Qu.:1949   3rd Qu.:1949   3rd Qu.:1.00  
                Max.   :10    Max.   :7300   Max.   :7300   Max.   :1.00  
                NA's   :199   NA's   :135    NA's   :135                  
    fa_mjj23    
 Min.   :233.1  
 1st Qu.:345.5  
 Median :399.2  
 Mean   :451.2  
 3rd Qu.:553.2  
 Max.   :817.4  
 NA's   :45